package main

import (
	"fmt"
	"os"
	"os/exec"
)

// 在项目路径下，使用如下go命令执行程序：
// go run 01-example/20-env/main.go a b c d
func main() {
	// 第一个参数是命令，从第二个参数开始就是用户在命令行中输入的参数
	fmt.Println(os.Args) // [/var/folders/p4/g32_5_wn02vbthghl27cvxz00000gn/T/go-build695687048/b001/exe/main a b c d]

	// 获取环境变量
	fmt.Println(os.Getenv("PATH")) // /usr/local/go/bin...
	// 设置环境变量
	fmt.Println(os.Setenv("AA", "BB")) // <nil>

	// 执行shell命令，返回的是字节数组
	buf, err := exec.Command("grep", "127.0.0.1", "/etc/hosts").CombinedOutput()
	if err != nil {
		panic(err)
	}
	fmt.Println(buf)         // [49 50 55 46 48 46 48 46 49 9 108 111 99 97 108 104 111 115 116 10]
	fmt.Println(string(buf)) // 127.0.0.1       localhost

	byteArr := []byte{49, 50, 55, 46, 48, 46, 48, 46, 49, 9, 108, 111, 99, 97, 108, 104, 111, 115, 116, 10}
	fmt.Println(string(byteArr)) // 127.0.0.1       localhost
}
